package com.kk.nio.work01.server.channeldata.impl;

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel;

import com.kk.nio.work01.server.channeldata.ChannelDataServiceInf;

/**
* 源文件名：ReadServiceImpl.java
* 文件版本：1.0.0
* 创建作者：liujun
* 创建日期：2016年11月4日
* 修改作者：liujun
* 修改日期：2016年11月4日
* 文件描述：liujun
* 版权所有：Copyright 2016 zjhz, Inc. All Rights Reserved.
*/
public class DefChannelDataServiceImpl implements ChannelDataServiceInf {

    @Override
    public void dataProcess(SocketChannel channel) {
        ByteBuffer buffer = ByteBuffer.allocate(512);

        int readIndex = -1;

        try {
            while ((readIndex = channel.read(buffer)) != 0) {
                String readValue = new String(buffer.array(), 0, readIndex);
                System.out.println("收到信息:" + readValue);
                buffer.clear();
            }

            buffer.clear();

            String outMsg = "msg response !";

            buffer.put(outMsg.getBytes());

            buffer.flip();

            // 进行消息的回写
            channel.write(buffer);

            System.out.println("回写完成");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}
